Colors viewed in an image are dependent on the light that illuminates the subject of the image. Different illuminants will cause different light to be reflected from surfaces of the image subject matter. The human visual system approximately corrects these variations in reflected light such that surfaces remain approximately color constant. However, when images are captured on media and viewed under a light source different than the source in the imaged scene, these natural corrections do not take place. Accordingly, it is often desirable for recorded images to be color-balanced to a standard, reference light source in order to appear as they would to the natural eye. This balancing or color correction can be performed once the scene illuminant is identified.
Estimating the color parameters of an image illuminant is an important first step in color correcting a digital image. In a strict model-matching scheme, the accuracy of the estimation is often limited by the size of the model base. This is because illuminant parameter values are explicitly available only at the predefined model positions and because the match procedure itself typically reduces to selection of the “best-fit” model from within a limited set. Increasing the number of models can improve accuracy. However, additional memory is required to store the larger set of models and additional time is required to match against all models in the larger model base.
Under known methods, illuminant estimation employs a fixed set of known illuminants, which are each characterized by the gamut of color values that are possible under that illuminant. A color histogram is computed for the image and is compared with each of the model histograms using some form of match metric such as intersection, correlation, minimum distance, etc. The match metric is used to select the model that best accounts for the image data from the set of illuminants.